// function
// 函数是一等公民
function add(x, y, z) {
    if (typeof z === 'number') {
        return x + y + z;
    }
    return x + y;
}
var ret = add(1, 2);
var ret1 = add(1, 2, 3);
// error
// 不能在不确定的参数后面添加确定参数
// function add1(x: number, y: number, z?: number, t:number): number {
//   if (typeof z === 'number') {
//     return x + y + z
//   }
//   return x + y
// }
// type (x: number, y: number, z?: number):number=>{}
var add2 = function (x, y, z) {
    if (typeof z === 'number') {
        return x + y + z;
    }
    return x + y;
};
var ret2 = add;
var ret3 = add;
